#url管理器，需要管理两个列表一个是已经爬取的url，一个是待爬取得url
class UrlManager(object):
    def __init__(self):
        self.new_urls = set() #待爬取得url
        self.old_urls = set() #已经爬取的url

    def add_news_url(self,url): #添加一个url
        if url is None:
            return #判断传入的url是否为空
        #判断url是否是全新的url
        if url not in self.new_urls and url not in self.old_urls:
            self.new_urls.add(url)

    def add_news_urls(self,urls): #添加批量的url
        if urls is None or len(urls) == 0:
            return
        for url in urls:
            self.new_urls.add(url)

    def has_news_url(self): #判断管理器中是否有新的url
        return len(self.new_urls) !=0

    def get_news_url(self): #获取一个url
        new_url = self.new_urls.pop()#移除代爬取的url列表中的最后一个url,并返回移除的值
        self.old_urls.add(new_url)
        return new_url
